<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="retail_v2.html">Vertex AI Search for commerce API</a> . <a href="retail_v2.projects.html">projects</a> . <a href="retail_v2.projects.locations.html">locations</a> . <a href="retail_v2.projects.locations.catalogs.html">catalogs</a> . <a href="retail_v2.projects.locations.catalogs.attributesConfig.html">attributesConfig</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#addCatalogAttribute">addCatalogAttribute(attributesConfig, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Adds the specified CatalogAttribute to the AttributesConfig. If the CatalogAttribute to add already exists, an ALREADY_EXISTS error is returned.</p>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#removeCatalogAttribute">removeCatalogAttribute(attributesConfig, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Removes the specified CatalogAttribute from the AttributesConfig. If the CatalogAttribute to remove does not exist, a NOT_FOUND error is returned.</p>
<p class="toc_element">
  <code><a href="#replaceCatalogAttribute">replaceCatalogAttribute(attributesConfig, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Replaces the specified CatalogAttribute in the AttributesConfig by updating the catalog attribute with the same CatalogAttribute.key. If the CatalogAttribute to replace does not exist, a NOT_FOUND error is returned.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="addCatalogAttribute">addCatalogAttribute(attributesConfig, body=None, x__xgafv=None)</code>
  <pre>Adds the specified CatalogAttribute to the AttributesConfig. If the CatalogAttribute to add already exists, an ALREADY_EXISTS error is returned.

Args:
  attributesConfig: string, Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` (required)
  body: object, The request body.
    The object takes the form of:

{ # Request for CatalogService.AddCatalogAttribute method.
  &quot;catalogAttribute&quot;: { # Catalog level attribute config for an attribute. For example, if customers want to enable/disable facet for a specific attribute. # Required. The CatalogAttribute to add.
    &quot;dynamicFacetableOption&quot;: &quot;A String&quot;, # If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. Must be specified, otherwise throws INVALID_FORMAT error.
    &quot;exactSearchableOption&quot;: &quot;A String&quot;, # If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. This property only applies to textual custom attributes and requires indexable set to enabled to enable exact-searchable. If unset, the server behavior defaults to EXACT_SEARCHABLE_DISABLED.
    &quot;facetConfig&quot;: { # Possible options for the facet that corresponds to the current attribute config. # Contains facet options.
      &quot;facetIntervals&quot;: [ # If you don&#x27;t set the facet SearchRequest.FacetSpec.FacetKey.intervals in the request to a numerical attribute, then we use the computed intervals with rounded bounds obtained from all its product numerical attribute values. The computed intervals might not be ideal for some attributes. Therefore, we give you the option to overwrite them with the facet_intervals field. The maximum of facet intervals per CatalogAttribute is 40. Each interval must have a lower bound or an upper bound. If both bounds are provided, then the lower bound must be smaller or equal than the upper bound.
        { # A floating point interval.
          &quot;exclusiveMaximum&quot;: 3.14, # Exclusive upper bound.
          &quot;exclusiveMinimum&quot;: 3.14, # Exclusive lower bound.
          &quot;maximum&quot;: 3.14, # Inclusive upper bound.
          &quot;minimum&quot;: 3.14, # Inclusive lower bound.
        },
      ],
      &quot;ignoredFacetValues&quot;: [ # Each instance represents a list of attribute values to ignore as facet values for a specific time range. The maximum number of instances per CatalogAttribute is 25.
        { # Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.
          &quot;endTime&quot;: &quot;A String&quot;, # If start time is empty and end time is not empty, then ignore these facet values before end time.
          &quot;startTime&quot;: &quot;A String&quot;, # Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.
          &quot;values&quot;: [ # List of facet values to ignore for the following time range. The facet values are the same as the attribute values. There is a limit of 10 values per instance of IgnoredFacetValues. Each value can have at most 128 characters.
            &quot;A String&quot;,
          ],
        },
      ],
      &quot;mergedFacet&quot;: { # The current facet key (i.e. attribute config) maps into the merged_facet_key. A facet key can have at most one child. The current facet key and the merged facet key need both to be textual custom attributes or both numerical custom attributes (same type). # Use this field only if you want to merge a facet key into another facet key.
        &quot;mergedFacetKey&quot;: &quot;A String&quot;, # The merged facet key should be a valid facet key that is different than the facet key of the current catalog attribute. We refer this is merged facet key as the child of the current catalog attribute. This merged facet key can&#x27;t be a parent of another facet key (i.e. no directed path of length 2). This merged facet key needs to be either a textual custom attribute or a numerical custom attribute.
      },
      &quot;mergedFacetValues&quot;: [ # Each instance replaces a list of facet values by a merged facet value. If a facet value is not in any list, then it will stay the same. To avoid conflicts, only paths of length 1 are accepted. In other words, if &quot;dark_blue&quot; merged into &quot;BLUE&quot;, then the latter can&#x27;t merge into &quot;blues&quot; because this would create a path of length 2. The maximum number of instances of MergedFacetValue per CatalogAttribute is 100. This feature is available only for textual custom attributes.
        { # Replaces a set of textual facet values by the same (possibly different) merged facet value. Each facet value should appear at most once as a value per CatalogAttribute. This feature is available only for textual custom attributes.
          &quot;mergedValue&quot;: &quot;A String&quot;, # All the previous values are replaced by this merged facet value. This merged_value must be non-empty and can have up to 128 characters.
          &quot;values&quot;: [ # All the facet values that are replaces by the same merged_value that follows. The maximum number of values per MergedFacetValue is 25. Each value can have up to 128 characters.
            &quot;A String&quot;,
          ],
        },
      ],
      &quot;rerankConfig&quot;: { # Options to rerank based on facet values engaged by the user for the current key. That key needs to be a custom textual key and facetable. To use this control, you also need to pass all the facet keys engaged by the user in the request using the field [SearchRequest.FacetSpec]. In particular, if you don&#x27;t pass the facet keys engaged that you want to rerank on, this control won&#x27;t be effective. Moreover, to obtain better results, the facet values that you want to rerank on should be close to English (ideally made of words, underscores, and spaces). # Set this field only if you want to rerank based on facet values engaged by the user for the current key. This option is only possible for custom facetable textual keys.
        &quot;facetValues&quot;: [ # If empty, rerank on all facet values for the current key. Otherwise, will rerank on the facet values from this list only.
          &quot;A String&quot;,
        ],
        &quot;rerankFacet&quot;: True or False, # If set to true, then we also rerank the dynamic facets based on the facet values engaged by the user for the current attribute key during serving.
      },
    },
    &quot;inUse&quot;: True or False, # Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.
    &quot;indexableOption&quot;: &quot;A String&quot;, # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.
    &quot;key&quot;: &quot;A String&quot;, # Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named `attributes.abc_xyz` can be indexed, but an attribute named `attributes.abc-xyz` cannot be indexed. If the attribute key starts with `attributes.`, then the attribute is a custom attribute. Attributes such as `brands`, `patterns`, and `title` are built-in and called system attributes.
    &quot;retrievableOption&quot;: &quot;A String&quot;, # If RETRIEVABLE_ENABLED, attribute values are retrievable in the search results. If unset, the server behavior defaults to RETRIEVABLE_DISABLED.
    &quot;searchableOption&quot;: &quot;A String&quot;, # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.
    &quot;type&quot;: &quot;A String&quot;, # Output only. The type of this attribute. This is derived from the attribute in Product.attributes.
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Catalog level attribute config.
  &quot;attributeConfigLevel&quot;: &quot;A String&quot;, # Output only. The AttributeConfigLevel used for this catalog.
  &quot;catalogAttributes&quot;: { # Enable attribute(s) config at catalog level. For example, indexable, dynamic_facetable, or searchable for each attribute. The key is catalog attribute&#x27;s name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. The maximum number of catalog attributes allowed in a request is 1000.
    &quot;a_key&quot;: { # Catalog level attribute config for an attribute. For example, if customers want to enable/disable facet for a specific attribute.
      &quot;dynamicFacetableOption&quot;: &quot;A String&quot;, # If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. Must be specified, otherwise throws INVALID_FORMAT error.
      &quot;exactSearchableOption&quot;: &quot;A String&quot;, # If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. This property only applies to textual custom attributes and requires indexable set to enabled to enable exact-searchable. If unset, the server behavior defaults to EXACT_SEARCHABLE_DISABLED.
      &quot;facetConfig&quot;: { # Possible options for the facet that corresponds to the current attribute config. # Contains facet options.
        &quot;facetIntervals&quot;: [ # If you don&#x27;t set the facet SearchRequest.FacetSpec.FacetKey.intervals in the request to a numerical attribute, then we use the computed intervals with rounded bounds obtained from all its product numerical attribute values. The computed intervals might not be ideal for some attributes. Therefore, we give you the option to overwrite them with the facet_intervals field. The maximum of facet intervals per CatalogAttribute is 40. Each interval must have a lower bound or an upper bound. If both bounds are provided, then the lower bound must be smaller or equal than the upper bound.
          { # A floating point interval.
            &quot;exclusiveMaximum&quot;: 3.14, # Exclusive upper bound.
            &quot;exclusiveMinimum&quot;: 3.14, # Exclusive lower bound.
            &quot;maximum&quot;: 3.14, # Inclusive upper bound.
            &quot;minimum&quot;: 3.14, # Inclusive lower bound.
          },
        ],
        &quot;ignoredFacetValues&quot;: [ # Each instance represents a list of attribute values to ignore as facet values for a specific time range. The maximum number of instances per CatalogAttribute is 25.
          { # Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.
            &quot;endTime&quot;: &quot;A String&quot;, # If start time is empty and end time is not empty, then ignore these facet values before end time.
            &quot;startTime&quot;: &quot;A String&quot;, # Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.
            &quot;values&quot;: [ # List of facet values to ignore for the following time range. The facet values are the same as the attribute values. There is a limit of 10 values per instance of IgnoredFacetValues. Each value can have at most 128 characters.
              &quot;A String&quot;,
            ],
          },
        ],
        &quot;mergedFacet&quot;: { # The current facet key (i.e. attribute config) maps into the merged_facet_key. A facet key can have at most one child. The current facet key and the merged facet key need both to be textual custom attributes or both numerical custom attributes (same type). # Use this field only if you want to merge a facet key into another facet key.
          &quot;mergedFacetKey&quot;: &quot;A String&quot;, # The merged facet key should be a valid facet key that is different than the facet key of the current catalog attribute. We refer this is merged facet key as the child of the current catalog attribute. This merged facet key can&#x27;t be a parent of another facet key (i.e. no directed path of length 2). This merged facet key needs to be either a textual custom attribute or a numerical custom attribute.
        },
        &quot;mergedFacetValues&quot;: [ # Each instance replaces a list of facet values by a merged facet value. If a facet value is not in any list, then it will stay the same. To avoid conflicts, only paths of length 1 are accepted. In other words, if &quot;dark_blue&quot; merged into &quot;BLUE&quot;, then the latter can&#x27;t merge into &quot;blues&quot; because this would create a path of length 2. The maximum number of instances of MergedFacetValue per CatalogAttribute is 100. This feature is available only for textual custom attributes.
          { # Replaces a set of textual facet values by the same (possibly different) merged facet value. Each facet value should appear at most once as a value per CatalogAttribute. This feature is available only for textual custom attributes.
            &quot;mergedValue&quot;: &quot;A String&quot;, # All the previous values are replaced by this merged facet value. This merged_value must be non-empty and can have up to 128 characters.
            &quot;values&quot;: [ # All the facet values that are replaces by the same merged_value that follows. The maximum number of values per MergedFacetValue is 25. Each value can have up to 128 characters.
              &quot;A String&quot;,
            ],
          },
        ],
        &quot;rerankConfig&quot;: { # Options to rerank based on facet values engaged by the user for the current key. That key needs to be a custom textual key and facetable. To use this control, you also need to pass all the facet keys engaged by the user in the request using the field [SearchRequest.FacetSpec]. In particular, if you don&#x27;t pass the facet keys engaged that you want to rerank on, this control won&#x27;t be effective. Moreover, to obtain better results, the facet values that you want to rerank on should be close to English (ideally made of words, underscores, and spaces). # Set this field only if you want to rerank based on facet values engaged by the user for the current key. This option is only possible for custom facetable textual keys.
          &quot;facetValues&quot;: [ # If empty, rerank on all facet values for the current key. Otherwise, will rerank on the facet values from this list only.
            &quot;A String&quot;,
          ],
          &quot;rerankFacet&quot;: True or False, # If set to true, then we also rerank the dynamic facets based on the facet values engaged by the user for the current attribute key during serving.
        },
      },
      &quot;inUse&quot;: True or False, # Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.
      &quot;indexableOption&quot;: &quot;A String&quot;, # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.
      &quot;key&quot;: &quot;A String&quot;, # Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named `attributes.abc_xyz` can be indexed, but an attribute named `attributes.abc-xyz` cannot be indexed. If the attribute key starts with `attributes.`, then the attribute is a custom attribute. Attributes such as `brands`, `patterns`, and `title` are built-in and called system attributes.
      &quot;retrievableOption&quot;: &quot;A String&quot;, # If RETRIEVABLE_ENABLED, attribute values are retrievable in the search results. If unset, the server behavior defaults to RETRIEVABLE_DISABLED.
      &quot;searchableOption&quot;: &quot;A String&quot;, # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.
      &quot;type&quot;: &quot;A String&quot;, # Output only. The type of this attribute. This is derived from the attribute in Product.attributes.
    },
  },
  &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`
}</pre>
</div>

<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="removeCatalogAttribute">removeCatalogAttribute(attributesConfig, body=None, x__xgafv=None)</code>
  <pre>Removes the specified CatalogAttribute from the AttributesConfig. If the CatalogAttribute to remove does not exist, a NOT_FOUND error is returned.

Args:
  attributesConfig: string, Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` (required)
  body: object, The request body.
    The object takes the form of:

{ # Request for CatalogService.RemoveCatalogAttribute method.
  &quot;key&quot;: &quot;A String&quot;, # Required. The attribute name key of the CatalogAttribute to remove.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Catalog level attribute config.
  &quot;attributeConfigLevel&quot;: &quot;A String&quot;, # Output only. The AttributeConfigLevel used for this catalog.
  &quot;catalogAttributes&quot;: { # Enable attribute(s) config at catalog level. For example, indexable, dynamic_facetable, or searchable for each attribute. The key is catalog attribute&#x27;s name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. The maximum number of catalog attributes allowed in a request is 1000.
    &quot;a_key&quot;: { # Catalog level attribute config for an attribute. For example, if customers want to enable/disable facet for a specific attribute.
      &quot;dynamicFacetableOption&quot;: &quot;A String&quot;, # If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. Must be specified, otherwise throws INVALID_FORMAT error.
      &quot;exactSearchableOption&quot;: &quot;A String&quot;, # If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. This property only applies to textual custom attributes and requires indexable set to enabled to enable exact-searchable. If unset, the server behavior defaults to EXACT_SEARCHABLE_DISABLED.
      &quot;facetConfig&quot;: { # Possible options for the facet that corresponds to the current attribute config. # Contains facet options.
        &quot;facetIntervals&quot;: [ # If you don&#x27;t set the facet SearchRequest.FacetSpec.FacetKey.intervals in the request to a numerical attribute, then we use the computed intervals with rounded bounds obtained from all its product numerical attribute values. The computed intervals might not be ideal for some attributes. Therefore, we give you the option to overwrite them with the facet_intervals field. The maximum of facet intervals per CatalogAttribute is 40. Each interval must have a lower bound or an upper bound. If both bounds are provided, then the lower bound must be smaller or equal than the upper bound.
          { # A floating point interval.
            &quot;exclusiveMaximum&quot;: 3.14, # Exclusive upper bound.
            &quot;exclusiveMinimum&quot;: 3.14, # Exclusive lower bound.
            &quot;maximum&quot;: 3.14, # Inclusive upper bound.
            &quot;minimum&quot;: 3.14, # Inclusive lower bound.
          },
        ],
        &quot;ignoredFacetValues&quot;: [ # Each instance represents a list of attribute values to ignore as facet values for a specific time range. The maximum number of instances per CatalogAttribute is 25.
          { # Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.
            &quot;endTime&quot;: &quot;A String&quot;, # If start time is empty and end time is not empty, then ignore these facet values before end time.
            &quot;startTime&quot;: &quot;A String&quot;, # Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.
            &quot;values&quot;: [ # List of facet values to ignore for the following time range. The facet values are the same as the attribute values. There is a limit of 10 values per instance of IgnoredFacetValues. Each value can have at most 128 characters.
              &quot;A String&quot;,
            ],
          },
        ],
        &quot;mergedFacet&quot;: { # The current facet key (i.e. attribute config) maps into the merged_facet_key. A facet key can have at most one child. The current facet key and the merged facet key need both to be textual custom attributes or both numerical custom attributes (same type). # Use this field only if you want to merge a facet key into another facet key.
          &quot;mergedFacetKey&quot;: &quot;A String&quot;, # The merged facet key should be a valid facet key that is different than the facet key of the current catalog attribute. We refer this is merged facet key as the child of the current catalog attribute. This merged facet key can&#x27;t be a parent of another facet key (i.e. no directed path of length 2). This merged facet key needs to be either a textual custom attribute or a numerical custom attribute.
        },
        &quot;mergedFacetValues&quot;: [ # Each instance replaces a list of facet values by a merged facet value. If a facet value is not in any list, then it will stay the same. To avoid conflicts, only paths of length 1 are accepted. In other words, if &quot;dark_blue&quot; merged into &quot;BLUE&quot;, then the latter can&#x27;t merge into &quot;blues&quot; because this would create a path of length 2. The maximum number of instances of MergedFacetValue per CatalogAttribute is 100. This feature is available only for textual custom attributes.
          { # Replaces a set of textual facet values by the same (possibly different) merged facet value. Each facet value should appear at most once as a value per CatalogAttribute. This feature is available only for textual custom attributes.
            &quot;mergedValue&quot;: &quot;A String&quot;, # All the previous values are replaced by this merged facet value. This merged_value must be non-empty and can have up to 128 characters.
            &quot;values&quot;: [ # All the facet values that are replaces by the same merged_value that follows. The maximum number of values per MergedFacetValue is 25. Each value can have up to 128 characters.
              &quot;A String&quot;,
            ],
          },
        ],
        &quot;rerankConfig&quot;: { # Options to rerank based on facet values engaged by the user for the current key. That key needs to be a custom textual key and facetable. To use this control, you also need to pass all the facet keys engaged by the user in the request using the field [SearchRequest.FacetSpec]. In particular, if you don&#x27;t pass the facet keys engaged that you want to rerank on, this control won&#x27;t be effective. Moreover, to obtain better results, the facet values that you want to rerank on should be close to English (ideally made of words, underscores, and spaces). # Set this field only if you want to rerank based on facet values engaged by the user for the current key. This option is only possible for custom facetable textual keys.
          &quot;facetValues&quot;: [ # If empty, rerank on all facet values for the current key. Otherwise, will rerank on the facet values from this list only.
            &quot;A String&quot;,
          ],
          &quot;rerankFacet&quot;: True or False, # If set to true, then we also rerank the dynamic facets based on the facet values engaged by the user for the current attribute key during serving.
        },
      },
      &quot;inUse&quot;: True or False, # Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.
      &quot;indexableOption&quot;: &quot;A String&quot;, # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.
      &quot;key&quot;: &quot;A String&quot;, # Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named `attributes.abc_xyz` can be indexed, but an attribute named `attributes.abc-xyz` cannot be indexed. If the attribute key starts with `attributes.`, then the attribute is a custom attribute. Attributes such as `brands`, `patterns`, and `title` are built-in and called system attributes.
      &quot;retrievableOption&quot;: &quot;A String&quot;, # If RETRIEVABLE_ENABLED, attribute values are retrievable in the search results. If unset, the server behavior defaults to RETRIEVABLE_DISABLED.
      &quot;searchableOption&quot;: &quot;A String&quot;, # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.
      &quot;type&quot;: &quot;A String&quot;, # Output only. The type of this attribute. This is derived from the attribute in Product.attributes.
    },
  },
  &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`
}</pre>
</div>

<div class="method">
    <code class="details" id="replaceCatalogAttribute">replaceCatalogAttribute(attributesConfig, body=None, x__xgafv=None)</code>
  <pre>Replaces the specified CatalogAttribute in the AttributesConfig by updating the catalog attribute with the same CatalogAttribute.key. If the CatalogAttribute to replace does not exist, a NOT_FOUND error is returned.

Args:
  attributesConfig: string, Required. Full AttributesConfig resource name. Format: `projects/{project_number}/locations/{location_id}/catalogs/{catalog_id}/attributesConfig` (required)
  body: object, The request body.
    The object takes the form of:

{ # Request for CatalogService.ReplaceCatalogAttribute method.
  &quot;catalogAttribute&quot;: { # Catalog level attribute config for an attribute. For example, if customers want to enable/disable facet for a specific attribute. # Required. The updated CatalogAttribute.
    &quot;dynamicFacetableOption&quot;: &quot;A String&quot;, # If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. Must be specified, otherwise throws INVALID_FORMAT error.
    &quot;exactSearchableOption&quot;: &quot;A String&quot;, # If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. This property only applies to textual custom attributes and requires indexable set to enabled to enable exact-searchable. If unset, the server behavior defaults to EXACT_SEARCHABLE_DISABLED.
    &quot;facetConfig&quot;: { # Possible options for the facet that corresponds to the current attribute config. # Contains facet options.
      &quot;facetIntervals&quot;: [ # If you don&#x27;t set the facet SearchRequest.FacetSpec.FacetKey.intervals in the request to a numerical attribute, then we use the computed intervals with rounded bounds obtained from all its product numerical attribute values. The computed intervals might not be ideal for some attributes. Therefore, we give you the option to overwrite them with the facet_intervals field. The maximum of facet intervals per CatalogAttribute is 40. Each interval must have a lower bound or an upper bound. If both bounds are provided, then the lower bound must be smaller or equal than the upper bound.
        { # A floating point interval.
          &quot;exclusiveMaximum&quot;: 3.14, # Exclusive upper bound.
          &quot;exclusiveMinimum&quot;: 3.14, # Exclusive lower bound.
          &quot;maximum&quot;: 3.14, # Inclusive upper bound.
          &quot;minimum&quot;: 3.14, # Inclusive lower bound.
        },
      ],
      &quot;ignoredFacetValues&quot;: [ # Each instance represents a list of attribute values to ignore as facet values for a specific time range. The maximum number of instances per CatalogAttribute is 25.
        { # Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.
          &quot;endTime&quot;: &quot;A String&quot;, # If start time is empty and end time is not empty, then ignore these facet values before end time.
          &quot;startTime&quot;: &quot;A String&quot;, # Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.
          &quot;values&quot;: [ # List of facet values to ignore for the following time range. The facet values are the same as the attribute values. There is a limit of 10 values per instance of IgnoredFacetValues. Each value can have at most 128 characters.
            &quot;A String&quot;,
          ],
        },
      ],
      &quot;mergedFacet&quot;: { # The current facet key (i.e. attribute config) maps into the merged_facet_key. A facet key can have at most one child. The current facet key and the merged facet key need both to be textual custom attributes or both numerical custom attributes (same type). # Use this field only if you want to merge a facet key into another facet key.
        &quot;mergedFacetKey&quot;: &quot;A String&quot;, # The merged facet key should be a valid facet key that is different than the facet key of the current catalog attribute. We refer this is merged facet key as the child of the current catalog attribute. This merged facet key can&#x27;t be a parent of another facet key (i.e. no directed path of length 2). This merged facet key needs to be either a textual custom attribute or a numerical custom attribute.
      },
      &quot;mergedFacetValues&quot;: [ # Each instance replaces a list of facet values by a merged facet value. If a facet value is not in any list, then it will stay the same. To avoid conflicts, only paths of length 1 are accepted. In other words, if &quot;dark_blue&quot; merged into &quot;BLUE&quot;, then the latter can&#x27;t merge into &quot;blues&quot; because this would create a path of length 2. The maximum number of instances of MergedFacetValue per CatalogAttribute is 100. This feature is available only for textual custom attributes.
        { # Replaces a set of textual facet values by the same (possibly different) merged facet value. Each facet value should appear at most once as a value per CatalogAttribute. This feature is available only for textual custom attributes.
          &quot;mergedValue&quot;: &quot;A String&quot;, # All the previous values are replaced by this merged facet value. This merged_value must be non-empty and can have up to 128 characters.
          &quot;values&quot;: [ # All the facet values that are replaces by the same merged_value that follows. The maximum number of values per MergedFacetValue is 25. Each value can have up to 128 characters.
            &quot;A String&quot;,
          ],
        },
      ],
      &quot;rerankConfig&quot;: { # Options to rerank based on facet values engaged by the user for the current key. That key needs to be a custom textual key and facetable. To use this control, you also need to pass all the facet keys engaged by the user in the request using the field [SearchRequest.FacetSpec]. In particular, if you don&#x27;t pass the facet keys engaged that you want to rerank on, this control won&#x27;t be effective. Moreover, to obtain better results, the facet values that you want to rerank on should be close to English (ideally made of words, underscores, and spaces). # Set this field only if you want to rerank based on facet values engaged by the user for the current key. This option is only possible for custom facetable textual keys.
        &quot;facetValues&quot;: [ # If empty, rerank on all facet values for the current key. Otherwise, will rerank on the facet values from this list only.
          &quot;A String&quot;,
        ],
        &quot;rerankFacet&quot;: True or False, # If set to true, then we also rerank the dynamic facets based on the facet values engaged by the user for the current attribute key during serving.
      },
    },
    &quot;inUse&quot;: True or False, # Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.
    &quot;indexableOption&quot;: &quot;A String&quot;, # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.
    &quot;key&quot;: &quot;A String&quot;, # Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named `attributes.abc_xyz` can be indexed, but an attribute named `attributes.abc-xyz` cannot be indexed. If the attribute key starts with `attributes.`, then the attribute is a custom attribute. Attributes such as `brands`, `patterns`, and `title` are built-in and called system attributes.
    &quot;retrievableOption&quot;: &quot;A String&quot;, # If RETRIEVABLE_ENABLED, attribute values are retrievable in the search results. If unset, the server behavior defaults to RETRIEVABLE_DISABLED.
    &quot;searchableOption&quot;: &quot;A String&quot;, # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.
    &quot;type&quot;: &quot;A String&quot;, # Output only. The type of this attribute. This is derived from the attribute in Product.attributes.
  },
  &quot;updateMask&quot;: &quot;A String&quot;, # Indicates which fields in the provided CatalogAttribute to update. The following are NOT supported: * CatalogAttribute.key If not set, all supported fields are updated.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Catalog level attribute config.
  &quot;attributeConfigLevel&quot;: &quot;A String&quot;, # Output only. The AttributeConfigLevel used for this catalog.
  &quot;catalogAttributes&quot;: { # Enable attribute(s) config at catalog level. For example, indexable, dynamic_facetable, or searchable for each attribute. The key is catalog attribute&#x27;s name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. The maximum number of catalog attributes allowed in a request is 1000.
    &quot;a_key&quot;: { # Catalog level attribute config for an attribute. For example, if customers want to enable/disable facet for a specific attribute.
      &quot;dynamicFacetableOption&quot;: &quot;A String&quot;, # If DYNAMIC_FACETABLE_ENABLED, attribute values are available for dynamic facet. Could only be DYNAMIC_FACETABLE_DISABLED if CatalogAttribute.indexable_option is INDEXABLE_DISABLED. Otherwise, an INVALID_ARGUMENT error is returned. Must be specified, otherwise throws INVALID_FORMAT error.
      &quot;exactSearchableOption&quot;: &quot;A String&quot;, # If EXACT_SEARCHABLE_ENABLED, attribute values will be exact searchable. This property only applies to textual custom attributes and requires indexable set to enabled to enable exact-searchable. If unset, the server behavior defaults to EXACT_SEARCHABLE_DISABLED.
      &quot;facetConfig&quot;: { # Possible options for the facet that corresponds to the current attribute config. # Contains facet options.
        &quot;facetIntervals&quot;: [ # If you don&#x27;t set the facet SearchRequest.FacetSpec.FacetKey.intervals in the request to a numerical attribute, then we use the computed intervals with rounded bounds obtained from all its product numerical attribute values. The computed intervals might not be ideal for some attributes. Therefore, we give you the option to overwrite them with the facet_intervals field. The maximum of facet intervals per CatalogAttribute is 40. Each interval must have a lower bound or an upper bound. If both bounds are provided, then the lower bound must be smaller or equal than the upper bound.
          { # A floating point interval.
            &quot;exclusiveMaximum&quot;: 3.14, # Exclusive upper bound.
            &quot;exclusiveMinimum&quot;: 3.14, # Exclusive lower bound.
            &quot;maximum&quot;: 3.14, # Inclusive upper bound.
            &quot;minimum&quot;: 3.14, # Inclusive lower bound.
          },
        ],
        &quot;ignoredFacetValues&quot;: [ # Each instance represents a list of attribute values to ignore as facet values for a specific time range. The maximum number of instances per CatalogAttribute is 25.
          { # Facet values to ignore on facets during the specified time range for the given SearchResponse.Facet.key attribute.
            &quot;endTime&quot;: &quot;A String&quot;, # If start time is empty and end time is not empty, then ignore these facet values before end time.
            &quot;startTime&quot;: &quot;A String&quot;, # Time range for the current list of facet values to ignore. If multiple time ranges are specified for an facet value for the current attribute, consider all of them. If both are empty, ignore always. If start time and end time are set, then start time must be before end time. If start time is not empty and end time is empty, then will ignore these facet values after the start time.
            &quot;values&quot;: [ # List of facet values to ignore for the following time range. The facet values are the same as the attribute values. There is a limit of 10 values per instance of IgnoredFacetValues. Each value can have at most 128 characters.
              &quot;A String&quot;,
            ],
          },
        ],
        &quot;mergedFacet&quot;: { # The current facet key (i.e. attribute config) maps into the merged_facet_key. A facet key can have at most one child. The current facet key and the merged facet key need both to be textual custom attributes or both numerical custom attributes (same type). # Use this field only if you want to merge a facet key into another facet key.
          &quot;mergedFacetKey&quot;: &quot;A String&quot;, # The merged facet key should be a valid facet key that is different than the facet key of the current catalog attribute. We refer this is merged facet key as the child of the current catalog attribute. This merged facet key can&#x27;t be a parent of another facet key (i.e. no directed path of length 2). This merged facet key needs to be either a textual custom attribute or a numerical custom attribute.
        },
        &quot;mergedFacetValues&quot;: [ # Each instance replaces a list of facet values by a merged facet value. If a facet value is not in any list, then it will stay the same. To avoid conflicts, only paths of length 1 are accepted. In other words, if &quot;dark_blue&quot; merged into &quot;BLUE&quot;, then the latter can&#x27;t merge into &quot;blues&quot; because this would create a path of length 2. The maximum number of instances of MergedFacetValue per CatalogAttribute is 100. This feature is available only for textual custom attributes.
          { # Replaces a set of textual facet values by the same (possibly different) merged facet value. Each facet value should appear at most once as a value per CatalogAttribute. This feature is available only for textual custom attributes.
            &quot;mergedValue&quot;: &quot;A String&quot;, # All the previous values are replaced by this merged facet value. This merged_value must be non-empty and can have up to 128 characters.
            &quot;values&quot;: [ # All the facet values that are replaces by the same merged_value that follows. The maximum number of values per MergedFacetValue is 25. Each value can have up to 128 characters.
              &quot;A String&quot;,
            ],
          },
        ],
        &quot;rerankConfig&quot;: { # Options to rerank based on facet values engaged by the user for the current key. That key needs to be a custom textual key and facetable. To use this control, you also need to pass all the facet keys engaged by the user in the request using the field [SearchRequest.FacetSpec]. In particular, if you don&#x27;t pass the facet keys engaged that you want to rerank on, this control won&#x27;t be effective. Moreover, to obtain better results, the facet values that you want to rerank on should be close to English (ideally made of words, underscores, and spaces). # Set this field only if you want to rerank based on facet values engaged by the user for the current key. This option is only possible for custom facetable textual keys.
          &quot;facetValues&quot;: [ # If empty, rerank on all facet values for the current key. Otherwise, will rerank on the facet values from this list only.
            &quot;A String&quot;,
          ],
          &quot;rerankFacet&quot;: True or False, # If set to true, then we also rerank the dynamic facets based on the facet values engaged by the user for the current attribute key during serving.
        },
      },
      &quot;inUse&quot;: True or False, # Output only. Indicates whether this attribute has been used by any products. `True` if at least one Product is using this attribute in Product.attributes. Otherwise, this field is `False`. CatalogAttribute can be pre-loaded by using CatalogService.AddCatalogAttribute or CatalogService.UpdateAttributesConfig APIs. This field is `False` for pre-loaded CatalogAttributes. Only pre-loaded catalog attributes that are neither in use by products nor predefined can be deleted. Catalog attributes that are either in use by products or are predefined attributes cannot be deleted; however, their configuration properties will reset to default values upon removal request. After catalog changes, it takes about 10 minutes for this field to update.
      &quot;indexableOption&quot;: &quot;A String&quot;, # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if INDEXABLE_ENABLED attribute values are indexed so that it can be filtered, faceted, or boosted in SearchService.Search. Must be specified when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.
      &quot;key&quot;: &quot;A String&quot;, # Required. Attribute name. For example: `color`, `brands`, `attributes.custom_attribute`, such as `attributes.xyz`. To be indexable, the attribute name can contain only alpha-numeric characters and underscores. For example, an attribute named `attributes.abc_xyz` can be indexed, but an attribute named `attributes.abc-xyz` cannot be indexed. If the attribute key starts with `attributes.`, then the attribute is a custom attribute. Attributes such as `brands`, `patterns`, and `title` are built-in and called system attributes.
      &quot;retrievableOption&quot;: &quot;A String&quot;, # If RETRIEVABLE_ENABLED, attribute values are retrievable in the search results. If unset, the server behavior defaults to RETRIEVABLE_DISABLED.
      &quot;searchableOption&quot;: &quot;A String&quot;, # When AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, if SEARCHABLE_ENABLED, attribute values are searchable by text queries in SearchService.Search. If SEARCHABLE_ENABLED but attribute type is numerical, attribute values will not be searchable by text queries in SearchService.Search, as there are no text values associated to numerical attributes. Must be specified, when AttributesConfig.attribute_config_level is CATALOG_LEVEL_ATTRIBUTE_CONFIG, otherwise throws INVALID_FORMAT error.
      &quot;type&quot;: &quot;A String&quot;, # Output only. The type of this attribute. This is derived from the attribute in Product.attributes.
    },
  },
  &quot;name&quot;: &quot;A String&quot;, # Required. Immutable. The fully qualified resource name of the attribute config. Format: `projects/*/locations/*/catalogs/*/attributesConfig`
}</pre>
</div>

</body></html>